package com.weds.edpf.core.mapper;

import com.weds.core.annotation.MyBatisDao;
import com.weds.edpf.core.entity.DeviceEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;


/**
 * @Author zcz
 * @Description 设备定义
 * @Date 2020-06-12
 */
@MyBatisDao("deviceMapperNew")
public interface DeviceMapper {
    /**
     * 主键删除
     * @param bh
     * @return
     */
    int deleteByPrimaryKey(String bh);

    /**
     * 新增
     * @param record
     * @return
     */
    int insert(DeviceEntity record);

    /**
     * 批量新增
     * @param list
     * @return
     */
    int insertBatch(@Param("list") List<DeviceEntity> list);

    /**
     * 条件新增
     * @param record
     * @return
     */
    int insertSelective(DeviceEntity record);

    /**
     * 主键查询
     * @param bh
     * @return
     */
    DeviceEntity selectByPrimaryKey(String bh);

    /**
     * 条件修改
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(DeviceEntity record);

    /**
     * 条件修改
     * @param record
     * @return
     */
    int updateByPrimaryKeyWithBLOBs(DeviceEntity record);

    /**
     * 修改
     * @param record
     * @return
     */
    int updateByPrimaryKey(DeviceEntity record);

    /**
     * 查询列表
     * @param record
     * @return
     */
    List<DeviceEntity> selectListByEntity(DeviceEntity record);
    /**
     * 设备定义列表
     * @param deviceEntity
     * @return
     */
    List<DeviceEntity> selectDeviceDefineList(DeviceEntity deviceEntity);
    /**
     */
    int deleteBatchByKeys(@Param("list") List<DeviceEntity> list);

    /**
     * 根据设备编号查询场所信息
     * @param devSerial
     * @return
     */
    Map<String,String> selectDepByDevSerial(String devSerial);
    /**
     * 根据设备编号查询模块信息
     * @param devSerial
     * @return
     */
    Map<String,String> selectModuleByDevSerial(String devSerial);
    /**
     * 根据模块编号和设备编号查询数量
     * @param devSerial
     * @return
     */
    int selectDevModuleCount(@Param("devSerial") String devSerial,@Param("moduleId") String moduleId);
    /**
     * 根据场所编号和设备编号查询数量
     * @param devSerial
     * @return
     */
    int selectDevCount(@Param("devSerial") String devSerial,@Param("depSerial") String depSerial);

    /**
     * 修改消费表的场所字段
     * @param acdepSerial
     * @param devSerial
     * @return
     */
    int updateAcdepSerialByDevSerial(@Param("acdepSerial") String acdepSerial,@Param("devSerial") String devSerial);

    /**
     * 删除设备存储过程
     * @param devSerial
     * @return
     */
    Integer callDevDelete(String devSerial);

    /**
     * 修改设备类型
     * @param devLb
     * @param bh
     * @return
     */
    int updateDevLbByBh(@Param("devLb") String devLb,@Param("bh") String bh);
}